import java.util.InputMismatchException;
import java.util.Scanner;

@SuppressWarnings("serial")
class GraException extends Exception {
	GraException(String w) {
		super(w);
	}
};

public class Gra {
	static Czlowiek ludzie[];
	int ilosc_graczy;
	static Bot boty[];
	int ilosc_botow;

	Gra(Czlowiek ludzie[], Bot boty[], int ilosc_graczy, int ilosc_botow) {
		Gra.ludzie = ludzie;
		Gra.boty = boty;
		this.ilosc_graczy = ilosc_graczy;
		this.ilosc_botow = ilosc_botow;
	}

	void ludzie() {
		for (int i = 0; i < ilosc_graczy; i++) {
			int a = i + 1;
			System.out.println("Gracz " + a + " " + ludzie[i].imie);
		}
	}

	void boty() {
		if (ilosc_botow > 0) {
			for (int i = 0; i < ilosc_botow; i++) {
				int a = i + 1;
				System.out.println("Bot " + a + " " + boty[i].imie);
			}
		}
	}

	void start_gry() {
		for (int i = 0; i < ilosc_graczy; i++) {
			Gra.ludzie[i].losowanie_kart();
		}
		for (int i = 0; i < ilosc_botow; i++) {
			Gra.boty[i].losowanie_kart();
		}
		for (int i = 0; i < ilosc_graczy; i++) {
			Gra.ludzie[i].uzupelnieni_argumentow();
		}
		for (int i = 0; i < ilosc_botow; i++) {
			Gra.boty[i].uzupelnieni_argumentow();
		}
		for (int i = 0; i < ilosc_graczy; i++) {
			Gra.ludzie[i].ulozenie_kart();
		}
		for (int i = 0; i < ilosc_botow; i++) {
			Gra.boty[i].ulozenie_kart();
		}
		for (int i = 0; i < ilosc_botow; i++) {
			Gra.boty[i].najwyzsza_karta();
			Gra.boty[i].para();
			Gra.boty[i].dwie_pary();
			Gra.boty[i].trojka();
			Gra.boty[i].strit();
			Gra.boty[i].kolor();
			Gra.boty[i].full();
			Gra.boty[i].kareta();
		}

		// wypisywanie srt - ow
		/*
		 * for (int i = 0; i < ilosc_botow; i++) {
		 * System.out.println(Gra.boty[i].imie); Gra.boty[i].s();
		 * Gra.boty[i].wyp_str8(); System.out.println(Gra.boty[i].str[8]);
		 * Gra.boty[i].wyp_str7(); System.out.println(Gra.boty[i].str[7]);
		 * Gra.boty[i].wyp_str6(); System.out.println(Gra.boty[i].str[6]);
		 * Gra.boty[i].wyp_str5(); System.out.println(Gra.boty[i].str[5]);
		 * Gra.boty[i].wyp_str4(); System.out.println(Gra.boty[i].str[4]);
		 * Gra.boty[i].wyp_str3(); System.out.println(Gra.boty[i].str[3]);
		 * System.out.println(Gra.boty[i].ty[3]); Gra.boty[i].wyp_str2();
		 * System.out.println(Gra.boty[i].str[2]);
		 * System.out.println(Gra.boty[i].ty[2]); Gra.boty[i].wyp_str1();
		 * System.out.println(Gra.boty[i].str[1]);
		 * System.out.println(Gra.boty[i].ty[1]); Gra.boty[i].wyp_str0();
		 * System.out.println(Gra.boty[i].str[0]);
		 * System.out.println(Gra.boty[i].ty[0]); }
		 */
		Scanner klawiatura = new Scanner(System.in);
		for (int i = 0; i < ilosc_graczy; i++) {
			System.out.println(Gra.ludzie[i].imie);
			Gra.ludzie[i].wypis();
			System.out.println("podaj ilosc kart do wymiany:");
			int ile_kart;
			try {
				ile_kart = klawiatura.nextInt();
				if (ile_kart < 0 || ile_kart > 4)
					throw new GraException("Zly wybor");
			} catch (InputMismatchException ex) {
				ile_kart = 0;
				System.out.println("Nie podales liczby");
			} catch (GraException w) {
				ile_kart = 0;
				System.out.println(w.getMessage());
			}
			if (ile_kart != 0) {
				int pozycja[] = new int[4];
				System.out.println("podaj pozycje kart do wymiany:");
				for (int j = 0; j < ile_kart; j++) {
					int p;
					p = klawiatura.nextInt();
					pozycja[j] = p;
				}
				Gra.ludzie[i].wymien_karty(ile_kart, pozycja);

				System.out.println(Gra.ludzie[i].imie);
				Gra.ludzie[i].wypis();
			}
		}

		for (int i = 0; i < ilosc_botow; i++) {
			Gra.boty[i].wymien_karty();
		}
		// wyswietlanie kart botow po wymianie
		/*
		 * for (int i = 0; i < ilosc_botow; i++) {
		 * System.out.println(Gra.boty[i].imie); Gra.boty[i].wypis(); }
		 */

		for (int i = 0; i < ilosc_graczy; i++) {
			// System.out.println(Gra.ludzie[i].imie);
			Gra.ludzie[i].reka();
			// System.out.println(Gra.ludzie[i].masz);
		}
		for (int i = 0; i < ilosc_botow; i++) {
			// System.out.println(Gra.boty[i].imie);
			Gra.boty[i].reka();
			// System.out.println(Gra.boty[i].masz);
		}

		for (int i = 0; i < ilosc_graczy; i++) {
			// System.out.println(Gra.ludzie[i].imie);
			Gra.ludzie[i].na_stol();
			// System.out.println(Gra.ludzie[i].id);
		}
		for (int i = 0; i < ilosc_botow; i++) {
			// System.out.println(Gra.boty[i].imie);
			Gra.boty[i].na_stol();
			// System.out.println(Gra.boty[i].id);
		}

		int wygral = stol.kto_wygral();
		boolean w = false;
		for (int i = 0; i < ilosc_graczy; i++) {
			if (wygral == Gra.ludzie[i].id) {
				System.out.println("wygral gre czlowiek " + Gra.ludzie[i].imie);
				Gra.ludzie[i].wypis();
				w = true;
				break;
			}
		}
		if (w == false) {
			for (int i = 0; i < ilosc_botow; i++) {
				if (wygral == Gra.boty[i].id) {
					System.out.println("wygral gre bot " + Gra.boty[i].imie);
					Gra.boty[i].wypis();
					break;
				}
			}
		}
	}
}
